package dao;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import modelo.Empleado;

/**
 *
 */

/**
 * @author Adiestramiento
 *
 */
public class EmpleadoDAO extends BaseDao{

	public EmpleadoDAO() throws ClassNotFoundException{
		super();
	}

	public void insertEmpleado(Empleado emp) throws SQLException{

		String sql ="INSERT INTO rarc1.emp"+
					"(nombre," +
					" apellido," +
					" direccion," +
					"f_ingr," +
					" coddpto," +
					"sueldo," +
					"telefono)"+
					"VALUES" +
					"(?,?,?,?,?,?,?)";

		PreparedStatement pst= getCon().prepareStatement(sql);
		pst.setString(1, emp.getNombreEmpleado() );
		pst.setString(2, emp.getNombreEmpleado());
		pst.setString(3, emp.getDireccion());
		pst.setDate(4, new java.sql.Date(0)) ;
		pst.setInt(5, emp.getIdDeptoRef()  );
		pst.setDouble(6, emp.getSueldo());
		pst.setString(7, emp.getTelefono() );
		pst.execute();

	}

	public Empleado getEmpleado(Integer id) throws SQLException{
		String sql ="SELECT * FROM rarc1.emp" +
				" d WHERE d.cod = ?";
		PreparedStatement pst= getCon().prepareStatement(sql);
		pst.setInt(1,id.intValue());

		ResultSet rows= pst.executeQuery();

		Empleado emp= null;

		if(rows.next()){
			emp= new Empleado();
			emp.setCodigoempleado(rows.getInt("cod"));
			emp.setNombreEmpleado(rows.getString("nombre"));
			emp.setDireccion(rows.getString("direccion"));
			emp.setF_ing(rows.getDate("f_ingr"));
			emp.setIdDeptoRef(rows.getInt("coddpto"));
			emp.setSueldo(rows.getDouble("sueldo"));
			emp.setTelefono(rows.getString("telefono") );
		}

		return emp;

	}


	public void DeleteEmpleado(Integer id) throws SQLException{
		String sql ="DELETE FROM RARC1.emp" +
				" d WHERE d.cod = ?";
		PreparedStatement pst= getCon().prepareStatement(sql);
		pst.setInt(1,id.intValue());
		pst.execute();
	}

	public void UpdateEmpleado(Empleado emp) throws SQLException{

		String sql ="UPDATE rarc1.emp SET"+
					" nombre = ? ," +
					" direccion = ?," +
					" f_ingr = ? ," +
					" coddpto = ?, " +
					"sueldo = ?," +
					"telefono = ? " +
					" WHERE cod = ?";

		PreparedStatement pst= getCon().prepareStatement(sql);
		//pst.setInt(1,emp.getIdDepto().intValue());
		pst.setString(1, emp.getNombreEmpleado());
//		System.out.println(emp.getNombre());
		pst.setString(2, emp.getDireccion());
		pst.setDate(3, (java.sql.Date) emp.getF_ing());
		pst.setInt(4, emp.getIdDeptoRef());
		pst.setDouble(5, emp.getSueldo());
		pst.setString(6, emp.getTelefono());
		pst.setInt(7, emp.getCodigoempleado());

		pst.execute();

	}

}
